package com.mc.read.dao.models;

import java.util.ArrayList;
import java.util.List;

public class BooklabelExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public BooklabelExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andBooklabelidIsNull() {
            addCriterion("bookLabelId is null");
            return (Criteria) this;
        }

        public Criteria andBooklabelidIsNotNull() {
            addCriterion("bookLabelId is not null");
            return (Criteria) this;
        }

        public Criteria andBooklabelidEqualTo(Integer value) {
            addCriterion("bookLabelId =", value, "booklabelid");
            return (Criteria) this;
        }

        public Criteria andBooklabelidNotEqualTo(Integer value) {
            addCriterion("bookLabelId <>", value, "booklabelid");
            return (Criteria) this;
        }

        public Criteria andBooklabelidGreaterThan(Integer value) {
            addCriterion("bookLabelId >", value, "booklabelid");
            return (Criteria) this;
        }

        public Criteria andBooklabelidGreaterThanOrEqualTo(Integer value) {
            addCriterion("bookLabelId >=", value, "booklabelid");
            return (Criteria) this;
        }

        public Criteria andBooklabelidLessThan(Integer value) {
            addCriterion("bookLabelId <", value, "booklabelid");
            return (Criteria) this;
        }

        public Criteria andBooklabelidLessThanOrEqualTo(Integer value) {
            addCriterion("bookLabelId <=", value, "booklabelid");
            return (Criteria) this;
        }

        public Criteria andBooklabelidIn(List<Integer> values) {
            addCriterion("bookLabelId in", values, "booklabelid");
            return (Criteria) this;
        }

        public Criteria andBooklabelidNotIn(List<Integer> values) {
            addCriterion("bookLabelId not in", values, "booklabelid");
            return (Criteria) this;
        }

        public Criteria andBooklabelidBetween(Integer value1, Integer value2) {
            addCriterion("bookLabelId between", value1, value2, "booklabelid");
            return (Criteria) this;
        }

        public Criteria andBooklabelidNotBetween(Integer value1, Integer value2) {
            addCriterion("bookLabelId not between", value1, value2, "booklabelid");
            return (Criteria) this;
        }

        public Criteria andLabelidIsNull() {
            addCriterion("labelId is null");
            return (Criteria) this;
        }

        public Criteria andLabelidIsNotNull() {
            addCriterion("labelId is not null");
            return (Criteria) this;
        }

        public Criteria andLabelidEqualTo(Integer value) {
            addCriterion("labelId =", value, "labelid");
            return (Criteria) this;
        }

        public Criteria andLabelidNotEqualTo(Integer value) {
            addCriterion("labelId <>", value, "labelid");
            return (Criteria) this;
        }

        public Criteria andLabelidGreaterThan(Integer value) {
            addCriterion("labelId >", value, "labelid");
            return (Criteria) this;
        }

        public Criteria andLabelidGreaterThanOrEqualTo(Integer value) {
            addCriterion("labelId >=", value, "labelid");
            return (Criteria) this;
        }

        public Criteria andLabelidLessThan(Integer value) {
            addCriterion("labelId <", value, "labelid");
            return (Criteria) this;
        }

        public Criteria andLabelidLessThanOrEqualTo(Integer value) {
            addCriterion("labelId <=", value, "labelid");
            return (Criteria) this;
        }

        public Criteria andLabelidIn(List<Integer> values) {
            addCriterion("labelId in", values, "labelid");
            return (Criteria) this;
        }

        public Criteria andLabelidNotIn(List<Integer> values) {
            addCriterion("labelId not in", values, "labelid");
            return (Criteria) this;
        }

        public Criteria andLabelidBetween(Integer value1, Integer value2) {
            addCriterion("labelId between", value1, value2, "labelid");
            return (Criteria) this;
        }

        public Criteria andLabelidNotBetween(Integer value1, Integer value2) {
            addCriterion("labelId not between", value1, value2, "labelid");
            return (Criteria) this;
        }

        public Criteria andLikesumIsNull() {
            addCriterion("likeSum is null");
            return (Criteria) this;
        }

        public Criteria andLikesumIsNotNull() {
            addCriterion("likeSum is not null");
            return (Criteria) this;
        }

        public Criteria andLikesumEqualTo(Integer value) {
            addCriterion("likeSum =", value, "likesum");
            return (Criteria) this;
        }

        public Criteria andLikesumNotEqualTo(Integer value) {
            addCriterion("likeSum <>", value, "likesum");
            return (Criteria) this;
        }

        public Criteria andLikesumGreaterThan(Integer value) {
            addCriterion("likeSum >", value, "likesum");
            return (Criteria) this;
        }

        public Criteria andLikesumGreaterThanOrEqualTo(Integer value) {
            addCriterion("likeSum >=", value, "likesum");
            return (Criteria) this;
        }

        public Criteria andLikesumLessThan(Integer value) {
            addCriterion("likeSum <", value, "likesum");
            return (Criteria) this;
        }

        public Criteria andLikesumLessThanOrEqualTo(Integer value) {
            addCriterion("likeSum <=", value, "likesum");
            return (Criteria) this;
        }

        public Criteria andLikesumIn(List<Integer> values) {
            addCriterion("likeSum in", values, "likesum");
            return (Criteria) this;
        }

        public Criteria andLikesumNotIn(List<Integer> values) {
            addCriterion("likeSum not in", values, "likesum");
            return (Criteria) this;
        }

        public Criteria andLikesumBetween(Integer value1, Integer value2) {
            addCriterion("likeSum between", value1, value2, "likesum");
            return (Criteria) this;
        }

        public Criteria andLikesumNotBetween(Integer value1, Integer value2) {
            addCriterion("likeSum not between", value1, value2, "likesum");
            return (Criteria) this;
        }

        public Criteria andHatesumIsNull() {
            addCriterion("hateSum is null");
            return (Criteria) this;
        }

        public Criteria andHatesumIsNotNull() {
            addCriterion("hateSum is not null");
            return (Criteria) this;
        }

        public Criteria andHatesumEqualTo(Integer value) {
            addCriterion("hateSum =", value, "hatesum");
            return (Criteria) this;
        }

        public Criteria andHatesumNotEqualTo(Integer value) {
            addCriterion("hateSum <>", value, "hatesum");
            return (Criteria) this;
        }

        public Criteria andHatesumGreaterThan(Integer value) {
            addCriterion("hateSum >", value, "hatesum");
            return (Criteria) this;
        }

        public Criteria andHatesumGreaterThanOrEqualTo(Integer value) {
            addCriterion("hateSum >=", value, "hatesum");
            return (Criteria) this;
        }

        public Criteria andHatesumLessThan(Integer value) {
            addCriterion("hateSum <", value, "hatesum");
            return (Criteria) this;
        }

        public Criteria andHatesumLessThanOrEqualTo(Integer value) {
            addCriterion("hateSum <=", value, "hatesum");
            return (Criteria) this;
        }

        public Criteria andHatesumIn(List<Integer> values) {
            addCriterion("hateSum in", values, "hatesum");
            return (Criteria) this;
        }

        public Criteria andHatesumNotIn(List<Integer> values) {
            addCriterion("hateSum not in", values, "hatesum");
            return (Criteria) this;
        }

        public Criteria andHatesumBetween(Integer value1, Integer value2) {
            addCriterion("hateSum between", value1, value2, "hatesum");
            return (Criteria) this;
        }

        public Criteria andHatesumNotBetween(Integer value1, Integer value2) {
            addCriterion("hateSum not between", value1, value2, "hatesum");
            return (Criteria) this;
        }

        public Criteria andBookidIsNull() {
            addCriterion("bookid is null");
            return (Criteria) this;
        }

        public Criteria andBookidIsNotNull() {
            addCriterion("bookid is not null");
            return (Criteria) this;
        }

        public Criteria andBookidEqualTo(Integer value) {
            addCriterion("bookid =", value, "bookid");
            return (Criteria) this;
        }

        public Criteria andBookidNotEqualTo(Integer value) {
            addCriterion("bookid <>", value, "bookid");
            return (Criteria) this;
        }

        public Criteria andBookidGreaterThan(Integer value) {
            addCriterion("bookid >", value, "bookid");
            return (Criteria) this;
        }

        public Criteria andBookidGreaterThanOrEqualTo(Integer value) {
            addCriterion("bookid >=", value, "bookid");
            return (Criteria) this;
        }

        public Criteria andBookidLessThan(Integer value) {
            addCriterion("bookid <", value, "bookid");
            return (Criteria) this;
        }

        public Criteria andBookidLessThanOrEqualTo(Integer value) {
            addCriterion("bookid <=", value, "bookid");
            return (Criteria) this;
        }

        public Criteria andBookidIn(List<Integer> values) {
            addCriterion("bookid in", values, "bookid");
            return (Criteria) this;
        }

        public Criteria andBookidNotIn(List<Integer> values) {
            addCriterion("bookid not in", values, "bookid");
            return (Criteria) this;
        }

        public Criteria andBookidBetween(Integer value1, Integer value2) {
            addCriterion("bookid between", value1, value2, "bookid");
            return (Criteria) this;
        }

        public Criteria andBookidNotBetween(Integer value1, Integer value2) {
            addCriterion("bookid not between", value1, value2, "bookid");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}